/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package aqu.persistencia.entity;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author angelquin
 */
@Entity
@Table(name = "con_cuenta")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ConCuenta.findAll", query = "SELECT c FROM ConCuenta c"),
    @NamedQuery(name = "ConCuenta.findByConCodigoCue", query = "SELECT c FROM ConCuenta c WHERE c.conCodigoCue = :conCodigoCue"),
    @NamedQuery(name = "ConCuenta.findByConDescripcionCue", query = "SELECT c FROM ConCuenta c WHERE c.conDescripcionCue = :conDescripcionCue"),
    @NamedQuery(name = "ConCuenta.findByConCodigopadreCue", query = "SELECT c FROM ConCuenta c WHERE c.conCodigopadreCue = :conCodigopadreCue")})
public class ConCuenta implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 25)
    @Column(name = "CON_CODIGO_CUE")
    private String conCodigoCue;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 65)
    @Column(name = "CON_DESCRIPCION_CUE")
    private String conDescripcionCue;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 25)
    @Column(name = "CON_CODIGOPADRE_CUE")
    private String conCodigopadreCue;
    @JoinColumn(name = "CON_CODIGO_TIPCUE", referencedColumnName = "CON_CODIGO_TIPCUE")
    @ManyToOne(optional = false)
    private ConTipoCuenta conCodigoTipcue;
    @JoinColumn(name = "CON_CODIGO_NIVCUE", referencedColumnName = "CON_CODIGO_NIVCUE")
    @ManyToOne(optional = false)
    private ConNivelCuenta conCodigoNivcue;
    @JoinColumn(name = "CON_CODIGO_EMP", referencedColumnName = "CON_CODIGO_EMP")
    @ManyToOne(optional = true)
    private ConEmpresa conCodigoEmp;

    public ConCuenta() {
    }

    public ConCuenta(String conCodigoCue) {
        this.conCodigoCue = conCodigoCue;
    }

    public ConCuenta(String conCodigoCue, String conDescripcionCue, String conCodigopadreCue) {
        this.conCodigoCue = conCodigoCue;
        this.conDescripcionCue = conDescripcionCue;
        this.conCodigopadreCue = conCodigopadreCue;
    }

    public String getConCodigoCue() {
        return conCodigoCue;
    }

    public void setConCodigoCue(String conCodigoCue) {
        this.conCodigoCue = conCodigoCue;
    }

    public String getConDescripcionCue() {
        return conDescripcionCue;
    }

    public void setConDescripcionCue(String conDescripcionCue) {
        this.conDescripcionCue = conDescripcionCue;
    }

    public String getConCodigopadreCue() {
        return conCodigopadreCue;
    }

    public void setConCodigopadreCue(String conCodigopadreCue) {
        this.conCodigopadreCue = conCodigopadreCue;
    }

    public ConTipoCuenta getConCodigoTipcue() {
        return conCodigoTipcue;
    }

    public void setConCodigoTipcue(ConTipoCuenta conCodigoTipcue) {
        this.conCodigoTipcue = conCodigoTipcue;
    }

    public ConNivelCuenta getConCodigoNivcue() {
        return conCodigoNivcue;
    }

    public void setConCodigoNivcue(ConNivelCuenta conCodigoNivcue) {
        this.conCodigoNivcue = conCodigoNivcue;
    }

    public ConEmpresa getConCodigoEmp() {
        return conCodigoEmp;
    }

    public void setConCodigoEmp(ConEmpresa conCodigoEmp) {
        this.conCodigoEmp = conCodigoEmp;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (conCodigoCue != null ? conCodigoCue.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ConCuenta)) {
            return false;
        }
        ConCuenta other = (ConCuenta) object;
        if ((this.conCodigoCue == null && other.conCodigoCue != null) || (this.conCodigoCue != null && !this.conCodigoCue.equals(other.conCodigoCue))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "empr.ConCuenta[ conCodigoCue=" + conCodigoCue + " ]";
    }
}
